package cn.b.sky.mes.cm.service;

import java.util.List;

import cn.b.sky.mes.cm.model.StandardCapacity;
import cn.b.sky.mes.cm.model.condition.StandardCapacityCondition;
import cn.b.sky.common.model.BatchJobReport;

/**
 * <strong>Title : StandardCapacityService.java<br></strong>
 * <strong>Package : cn.b.sky.mes.cm.service<br></strong>
 * <strong>Description : </strong>标准产能业务接口<br> 
 * <strong>Create on : 2016年1月13日 上午11:11:51<br></strong>
 * <p>
 * @author dapeng.li<br>
 * @version <strong>v1.0.0</strong><br>
 * <br>
 * <strong>修改历史:</strong><br>
 * 修改人 | 修改日期 | 修改描述<br>
 * -------------------------------------------<br>
 * <br>
 * <br>
 */
public interface StandardCapacityService {
  /**
   * 
   * <strong>Title : selectStandardCapacityListByCondition<br></strong>
   * <strong>Description : </strong>条件查询list<br> 
   * <strong>Create on : 2016年1月13日 上午11:15:08<br></strong>
   * <p>
   * @param condition
   * @return
   * List<StandardCapacity>
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<StandardCapacity> selectStandardCapacityListByCondition(StandardCapacityCondition condition);

  /**
   * 
   * <strong>Title : selectStandardCapacityCountByCondition<br></strong>
   * <strong>Description : </strong>条件查询总数<br> 
   * <strong>Create on : 2016年1月13日 上午11:15:25<br></strong>
   * <p>
   * @param condition
   * @return
   * int
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  int selectStandardCapacityCountByCondition(StandardCapacityCondition condition);

  /**
   * 
   * <strong>Title : getStandardCapacity<br></strong>
   * <strong>Description : </strong>取标准产能实体<br> 
   * <strong>Create on : 2016年1月13日 上午11:15:40<br></strong>
   * <p>
   * @param workCenterCode
   * @param siteCode
   * @return
   * StandardCapacity
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  StandardCapacity getStandardCapacity(String workCenterCode, String materialCode, String siteCode);

  /**
   * 
   * <strong>Title : getStandardCapacity<br></strong>
   * <strong>Description : </strong>更新准产能实体<br> 
   * <strong>Create on : 2016年1月13日 上午11:15:40<br></strong>
   * <p>
   * @param workCenterCode
   * @param siteCode
   * @return
   * StandardCapacity
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人  | 修改日期  | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void updateStandardCapacity(StandardCapacity wCStandardCapacity);

  /**
   * 
   * <strong>Title : getStandardCapacity<br></strong>
   * <strong>Description : </strong>删除标准产能实体,级联删除【工作中心产能系数】子数据<br> 
   * <strong>Create on : 2016年1月13日 上午11:15:40<br></strong>
   * <p>
   * @param workCenterCode
   * @param siteCode
   * @return
   * StandardCapacity
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人  | 修改日期  | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  BatchJobReport deleteStandardCapacity(String workCenterCode, String materialCode, String siteCode);

  /**
   * 
   * <strong>Title : insertStandardCapacity<br></strong>
   * <strong>Description : </strong>新增标准产能<br> 
   * <strong>Create on : 2016年1月13日 上午11:45:01<br></strong>
   * <p>
   * @param standardCapacity
   * void
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void insertStandardCapacity(StandardCapacity standardCapacity);

  /**
   * 
   * <strong>Title : insertCoefficients<br></strong>
   * <strong>Description : </strong>插入该产能下所有产能系数<br> 
   * <strong>Create on : 2016年1月28日 上午9:35:01<br></strong>
   * <p>
   * @param standardCapacity
   * void
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public void insertCoefficients(StandardCapacity standardCapacity);

  /**
   * 
   * <strong>Title : selectAllStandardCapacityList<br></strong>
   * <strong>Description : </strong>查询当前工厂下（所有/特定）工作中心标准产能<br> 
   * <strong>Create on : 2016年3月7日 上午11:15:08<br></strong>
   * <p>
   * @param siteCode
   * @param workCenterCode
   * @return
   * List<StandardCapacity>
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人  | 修改日期  | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<StandardCapacity> selectAllStandardCapacityList(String siteCode, String workCenterCode);

  /**
   * 
   * <strong>Title : isExsitsStandardCapacity<br></strong>
   * <strong>Description : </strong>存在性校验<br> 
   * <strong>Create on : 2016-5-4 上午10:45:53<br></strong>
   * <p>
   * @param workCenterCode
   * @param materialCode
   * @param siteCode
   * @return
   * StandardCapacity
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  StandardCapacity isExsitsStandardCapacity(String workCenterCode, String materialCode, String siteCode);
}
